Interfacing with a spatial virtual communication environment

ABSTRACT

A spatial layout of zones of a virtual area in a network communication environment is displayed. A user can have a respective presence in each of one or more of the zones. Navigation controls and interaction controls are presented. The navigation controls enable the user to specify where to establish a presence in the virtual area. The interaction controls enable the user to manage interactions with one or more other communicants in the network communication environment. A respective presence of the user is established in each of one or more of the zones on response to input received via the navigation controls. Respective graphical representations of the communicants are depicted in each of the zones where the communicants respectively have presence.

CROSS-REFERENCE TO RELATED APPLICATIONS

Under 35 U.S.C. §119(e), this application claims the benefit of U.S.Provisional Application No. 61/042,714, filed Apr. 15, 2008, theentirety of which is incorporated herein by reference.

This application also relates to the following co-pending patentapplications, the entirety of each of which is incorporated herein byreference: U.S. patent application Ser. No. 11/923,629, filed Oct. 24,2007; and U.S. patent application Ser. No. 11/923,634, filed Oct. 24,2007.

BACKGROUND OF THE INVENTION

When face-to-face communications are not practical, people often rely onone or more technological solutions to meet their communications needs.These solutions typically are designed to simulate one or more aspectsof face-to-face communications. Traditional telephony systems enablevoice communications between callers. Instant messaging (also referredto as “chat”) communications systems enable users to communicate textmessages in real time through instant message computer clients that areinterconnected by an instant message server. Some instant messagingsystems additionally allow users to be represented in a virtualenvironment by user-controllable graphic objects (referred to as“avatars”) Interactive virtual reality communication systems enableusers in remote locations to communicate over multiple real-timechannels and to interact with each other by manipulating theirrespective avatars in three-dimensional virtual spaces. What are neededare improved systems and methods for interfacing with spatial virtualcommunication environments.

BRIEF SUMMARY OF THE INVENTION

In one aspect, the invention features a method in accordance with whicha spatial layout of zones of a virtual area in a network communicationenvironment is displayed. A user can have a respective presence in eachof one or more of the zones. Navigation controls and interactioncontrols are presented. The navigation controls enable the user tospecify where to establish a presence in the virtual area. Theinteraction controls enable the user to manage interactions with one ormore other communicants in the network communication environment. Arespective presence of the user is established in each of one or more ofthe zones on response to input received via the navigation controls.Respective graphical representations of the communicants are depicted ineach of the zones where the communicants respectively have presence.

The invention also features apparatus operable to implement theinventive methods described above and computer-readable media storingcomputer-readable instructions causing a computer to implement theinventive methods described above.

Other features and advantages of the invention will become apparent fromthe following description, including the drawings and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagrammatic view of an embodiment of a networkcommunication environment that includes a first client network node, asecond client network node, and a virtual environment creator.

FIG. 2 is a diagrammatic view of an embodiment of a network node thatincludes a graphical user interface presenting a depiction of a virtualarea.

FIG. 3 is a block diagram of the network communication environment ofFIG. 1 that shows components of an embodiment of a client network node.

FIG. 4 is a flow diagram of an embodiment of a method of interfacing auser with a spatial communication environment.

FIG. 5 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 6 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 7 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 8 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 9 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 10 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 11 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 12 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 13 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 14 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 15 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 16 is a diagrammatic vie of an embodiment of a graphical userinterface.

FIG. 17 is a diagrammatic view of an embodiment of graphical userinterface.

FIG. 18 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 19 is diagrammatic view of an embodiment of a graphical userinterface.

FIG. 20 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 21 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 22 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 23 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 24 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 25 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 26 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 27 is a diagrammatic view of an embodiment of graphical userinterface.

FIG. 28 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 29 is diagrammatic view of an embodiment of a graphical userinterface.

FIG. 30 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 31 is diagrammatic view of an embodiment of a graphical userinterface.

FIG. 32 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 33 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 34 is a diagrammatic view of an embodiment of graphical userinterface.

FIG. 35 is a diagrammatic view of an embodiment of a graphical userinterface.

FIG. 36 is a diagrammatic view of an embodiment of a graphical userinterface.

DETAILED DESCRIPTION OF THE INVENTION

In the following description, like reference numbers are used toidentify like elements. Furthermore, the drawings are intended toillustrate major features of exemplary embodiments in a diagrammaticmanner. The drawings are not intended to depict every feature of actualembodiments nor relative dimensions of the depicted elements, and arenot drawn to scale.

I. DEFINITION OF TERMS

A “communicant” is a person who communicates or otherwise interacts withother persons over one or more network connections, where thecommunication or interaction may or may not occur in the context of avirtual area. A “user” is a communicant who is operating a particularnetwork node that defines a particular perspective for descriptivepurposes.

A “realtime contact” of a user is a communicant or other person who hascommunicated with the user via a realtime communications platform.

A “computer” is any machine, device, or apparatus that processes dataaccording to computer-readable instructions that are stored on acomputer-readable medium either temporarily or permanently. A “computeroperating system” is a software component of a computer system thatmanages and coordinates the performance of tasks and the sharing ofcomputing and hardware resources. A “software application” (alsoreferred to as software, an application, computer software, a computerapplication, a program, and a computer program) is a set of instructionsthat a computer can interpret and execute to perform one or morespecific tasks. A “computer data file” is a block of information thatdurably stores data for use by a software application.

A “database” is an organized collection of records that are presented ina standardized format that can be searched by computers. A database maybe stored on a single computer-readable data storage medium on a singlecomputer or it may be distributed across multiple computer-readable datastorage media on one or more computers.

A “data sink” (referred to herein simply as a “sink”) is any of a device(e.g., a computer), part of a device, or software that receives data.

A “data source” (referred to herein simply as a source) is any of adevice (e.g., a computer), part of a device, or software that originatesdata.

A “network node” (also referred to simply as a “node”) is a junction orconnection point in a communications network. Exemplary network nodesinclude, but are not limited to, a terminal, a computer, and a networkswitch. A “server” network node is a host computer on a network thatresponds to requests for information or service. A “client” network nodeis a computer on a network that requests information or service from aserver. A “network connection” is a link between two communicatingnetwork nodes. The term “local network node” refers to a network nodethat currently is the primary subject of discussion. The term “remotenetwork node” refers to a network node that is connected to a localnetwork node by a network communications link. A “connection handle” isa pointer or identifier (e.g., a uniform resource identifier (URI)) thatcan be used to establish a network connection with a communicant,resource, or service on a network node. A “network communication” caninclude any type of information (e.g., text, voice, audio, video,electronic mail message, data file, motion data stream, and data packet)that is transmitted or otherwise conveyed from one network node toanother network node over a network connection.

A “communicant interaction” is any type of direct or indirect action orinfluence between a communicant and another network entity, which mayinclude for example another communicant, a virtual area, or a networkservice. Exemplary types of communicant interactions includecommunicants communicating with each other in realtime, a communicantentering a virtual area, and a communicant requesting access to aresource from a network service.

“Presence” refers to the ability and willingness of a networked entity(e.g., a communicant, service, or device) to communicate, where suchwillingness affects the ability to detect and obtain information aboutthe state of the entity on a network and the ability to connect to theentity.

A “realtime data stream” is data that is structured and processed in acontinuous flow and is designed to be received with no delay or onlyimperceptible delay. Realtime data streams include digitalrepresentations of voice, video, user movements, facial expressions andother physical phenomena, as well as data within the computingenvironment that may benefit from rapid transmission, rapid execution,or both rapid transmission and rapid execution, including for example,avatar movement instructions, text chat, realtime data feeds (e.g.,sensor data, machine control instructions, transaction streams and stockquote information feeds), and file transfers.

A “virtual area” (also referred to as an “area” or a “place”) is arepresentation of a computer-managed space or scene. Virtual areastypically are one-dimensional, two-dimensional, or three-dimensionalrepresentations; although in some embodiments a virtual area maycorrespond to a single point. Oftentimes, a virtual area is designed tosimulate a physical, real-world space. For example, using a traditionalcomputer monitor, a virtual area may be visualized as a two-dimensionalgraphic of a three-dimensional computer-generated space. However,virtual areas do not require an associated visualization to implementswitching rules. A virtual area typically refers to an instance of avirtual area schema, where the schema defines the structure and contentsof a virtual area in terms of variables and the instance defines thestructure and contents of a virtual area in terms of values that havebeen resolved from a particular context.

A “virtual area application” (also referred to as a “virtual areaspecification”) is a description of a virtual area that is used increating a virtual environment. The virtual area application typicallyincludes definitions of geometry, physics, and realtime switching rulesthat are associated with one or more zones of the virtual area.

A “virtual environment” is a representation of a computer-managed spacethat includes at least one virtual area and supports realtimecommunications between communicants.

A “zone” is a region of a virtual area that is associated with at leastone switching rule or governance rule, A “switching rule” is aninstruction that specifies a connection or disconnection of one or morerealtime data sources and one or more realtime data sinks subject to oneor more conditions precedent. A switching rule controls switching (e.g.routing, connecting, and disconnecting) of realtime data streams betweennetwork nodes communicating in the context of a virtual area. Agovernance rule controls a communicant's access to a resource (e.g., anarea, a region of an area, or the contents of that area or region), thescope of that access, and follow-on consequences of that access (e.g., arequirement that audit records relating to that access must berecorded). A “renderable zone” is a zone that is associated with arespective visualization.

A “position” in a virtual area refers to a location of a point or anarea or a volume in the virtual area. A point typically is representedby a single set of one-dimensional, two-dimensional, orthree-dimensional coordinates (e.g., x, y, z) that define a spot in thevirtual area. An area typically is represented by the three-dimensionalcoordinates of three or more coplanar vertices that define a boundary ofa closed two-dimensional shape in the virtual area. A volume typicallyis represented by the three-dimensional coordinates of four or morenon-coplanar vertices that define a closed boundary of athree-dimensional shape in the virtual area.

A “spatial state” is an attribute that describes where a user haspresence in a virtual area. The spatial state attribute typically has arespective value (e.g., a zone_ID value) for each of the zones in whichthe user has presence.

A “placemark” is a stored reference (e.g., a hyperlink) to a location ina virtual area. A placemark typically can be selected to present a viewof the associated location in the virtual area to a user. The verb“placemark” means the act or operation of creating a placemark.

In the context of a virtual area, an “object” is any type of discreteelement in a virtual area that may be usefully treated separately fromthe geometry of the virtual area. Exemplary objects include doors,portals, windows, view screens, and speakerphone. An object typicallyhas attributes or properties that are separate and distinct from theattributes and properties of the virtual area. An “avatar” is an objectthat represents a communicant in a virtual area.

The term “double-click” refers to the act or operation of entering orinputting an execution command (e.g., double-clicking the left computermouse button or by single-clicking a user interface button associatedwith an execute command, e.g., enter zone or view object). The term“shift-click” refers to the act or operation of entering or inputting aselection command (e.g., clicking the left computer mouse button) whilethe Shift key of an alphanumeric input device is activated. The term“shift-double-click” refers to the act or operation of entering orinputting an execution command while the Shift key of an alphanumericinput device is activated.

As used herein, the term “includes” means includes but not limited to,the term “including” means including but not limited to. The term “basedon” means based at least in part on.

II. INTRODUCTION

The embodiments that are described herein provide improved systems andmethods for navigating and interacting in spatial virtual communicationenvironments. These embodiments provide an interface that includesnavigation controls that enable a user to navigate virtual areas andinteraction controls that enable the user to interact with othercommunicants in the virtual areas. The navigation controls allow theuser to change his or her focus (e.g., the current view of the virtualarea or the current zone or zones where the user has presence) using avariety of intuitive point-and-click browsing methods in the context ofa hierarchical spatial model of a virtual area. In some embodiments, theinterface adaptively presents navigation controls and interactioncontrols that are appropriate to the users needs in the context of theuser's current focus.

III. OVERVIEW

A. An Exemplary Operating Environment

1. INTRODUCTION

FIG. 1 shows an embodiment of an exemplary network communicationsenvironment 10 that includes a first client network node 12, a secondclient network node 14, and a virtual environment creator 16 that areinterconnected by a network 18. The first client network node 12includes a computer-readable memory 20, a processor 22, and input/output(I/O) hardware 24. The processor 22 executes at least one communicationsapplication 26 that is stored in the memory 20. The second clientnetwork node 14 typically is configured in substantially the same way asthe first client network node 12. The virtual environment creator 16includes at least one server network node 28 that provides a networkinfrastructure service environment 30. The communications application 26and the network infrastructure service environment 30 together provide aplatform (referred to herein as “the platform”) for creating a spatialvirtual communication environment (also referred to herein simply as a“virtual environment”).

In some embodiments, the network infrastructure service environment 30manages sessions of the first and second client nodes 12, 14 in avirtual area 32 in accordance with a virtual area application 34. Thevirtual area application 34 is hosted by the virtual area 32 andincludes a description of the virtual area 32. The communicationsapplications 26 operating on the first and second client network nodes12, 14 present respective views of the virtual area 32 in accordancewith data received from the network infrastructure service environment30 and provide respective interfaces for receiving commands from thecommunicants. The communicants typically are represented in the virtualarea 32 by respective avatars, which move about the virtual area 32 inresponse to commands that are input by the communicants at theirrespective network nodes. Each communicant's view of the virtual area 32typically is presented from the perspective of the communicants avatar,which increases the level of immersion experienced by the communicant.Each communicant typically is able to view any part of the virtual area32 around his or her avatar. In some embodiments, the communicationsapplications 26 establish realtime data stream connections between thefirst and second client network nodes 12, 14 and other network nodessharing the virtual area 32 based on the positions of the communicants'avatars in the virtual area 32.

The network infrastructure service environment 30 also maintains arelationship database 36 that contains records 38 of interactionsbetween communicants. Each interaction record 38 describes the contextof an interaction between a pair of communicants.

2. NETWORK ENVIRONMENT

The network 18 may include any of a local area network (LAN), ametropolitan area network (MAN), and a wide area network (WAN) (e.g.,the internet). The network 18 typically includes a number of differentcomputing platforms and transport facilities that support thetransmission of a wide variety of different media types (e.g., text,voice, audio, and video) between network nodes.

The communications application 26 (see FIG. 1) typically operates on aclient network node that includes software and hardware resources which,together with administrative policies, user preferences (includingpreferences regarding the exportation of the user's presence and theconnection of the user to areas and other users), and other settings,define a local configuration that influences the administration ofrealtime connections with other network nodes. The network connectionsbetween network nodes may be arranged in a variety of different streamhandling topologies, including a peer-to-peer architecture, aserver-mediated architecture, and hybrid architectures that combineaspects of peer-to-peer and server-mediated architectures. Exemplarytopologies of these types are described in U.S. application Ser. Nos.11/923,629 and 11/923,634, both of which were filed on Oct. 24, 2007.

3. NETWORK INFRASTRUCTURE SERVICES

The network infrastructure service environment 30 typically includes oneor more network infrastructure services that cooperate with thecommunications applications 26 in the process of establishing andadministering network connections between the client nodes 12, 14 andother network nodes (see FIG. 1). The network infrastructure servicesmay run on a single network node or may be distributed across multiplenetwork nodes. The network infrastructure services typically run on oneor more dedicated network nodes (e.g., a server computer or a networkdevice that performs one or more edge services, such as routing andswitching). In some embodiments, however, one or more of the networkinfrastructure services run on at least one of the communicants' networknodes. Among the network infrastructure services that are included inthe exemplary embodiment of the network infrastructure serviceenvironment 30 are an account service, a security service, an areaservice, a rendezvous service, and an interaction service.

Account Service

The account service manages communicant accounts for the virtualenvironment. The account service also manages the creation and issuanceof authentication tokens that can be used by client network nodes toauthenticate themselves to any of the network infrastructure services.

Security Service

The security service controls communicants' access to the assets andother resources of the virtual environment. The access control methodimplemented by the security service typically is based on one or more ofcapabilities (where access is granted to entities having propercapabilities or permissions) and an access control list (where access isgranted to entities having identities that are on the list). After aparticular communicant has been granted access to a resource, thatcommunicant typically uses the functionality provided by the othernetwork infrastructure services to interact in the networkcommunications environment 10.

Area Service

The area service administers virtual areas. In some embodiments, thearea service remotely configures the communications applications 26operating on the first and second client network nodes 12, 14 inaccordance with the virtual area application 34 subject to a set ofconstraints 47 (see FIG. 1). The constraints 47 typically includecontrols on access to the virtual area. The access controls typicallyare based on one or more of capabilities (where access is granted tocommunicants or client nodes having proper capabilities or permissions)and an access control list (where access is granted to communicants orclient nodes having identities that are on the list).

The area service also manages network connections that are associatedwith the virtual area subject to the capabilities of the requestingentities, maintains global state information for the virtual area, andserves as a data server for the client network nodes participating in ashared communication session in a context defined by the virtual area32. The global state information includes a list of all the objects thatare in the virtual area and their respective locations in the virtualarea. The area service sends instructions that configure the clientnetwork nodes. The area service also registers and transmitsinitialization information to other client network nodes that request tojoin the communication session. In this process, the area service maytransmit to each joining client network node a list of components (e.g.,plugins) that are needed to render the virtual area 32 on the clientnetwork node in accordance with the virtual area application 34. Thearea service also ensures that the client network nodes can synchronizeto a global state if a communications fault occurs. The area servicetypically manages communicant interactions with virtual areas viagovernance rules that are associated with the virtual areas.

Rendezvous Service

The rendezvous service manages the collection, storage, and distributionof presence information and provides mechanisms for network nodes tocommunicate with one another (e.g., by managing the distribution ofconnection handles) subject to the capabilities of the requestingentities. The rendezvous service typically stores the presenceinformation in a presence database. The rendezvous service typicallymanages communicant interactions with each other via communicant privacypreferences.

Interaction Service

The interaction service maintains the relationship database 36 thatcontains the records 38 of interactions between communicants. For everyinteraction between communicants, one or more services of the networkinfrastructure service environment 30 (e.g., the area service) transmitinteraction data to the interaction service. In response, theinteraction service generates one or more respective interaction recordsand stores them in the relationship database. Each interaction recorddescribes the context of an interaction between a pair of communicants.For example, in some embodiments, an interaction record contains anidentifier for each of the communicants, an identifier for the place ofinteraction (e.g., a virtual area instance), a description of thehierarchy of the interaction place (e.g., a description of how theinteraction room relates to a larger area), start and end times of theinteraction, and a list of all files and other data streams that areshared or recorded during the interaction. Thus, for each realtimeinteraction, the interaction service tracks when it occurred, where itoccurred, and what happened during the interaction in terms ofcommunicants involved (e.g., entering and exiting), objects that areactivated/deactivated, and the files that were shared.

The interaction service also supports queries on the relationshipdatabase 36 subject to the capabilities of the requesting entities. Theinteraction service presents the results of queries on the interactiondatabase records in a sorted order (e.g., most frequent or most recent)based on virtual area. The query results can be used to drive afrequency sort of contacts whom a communicant has met in which virtualareas, as well as sorts of who the communicant has met with regardlessof virtual area and sorts of the virtual areas the communicant frequentsmost often. The query results also may be used by application developersas part of a heuristic system that automates certain tasks based onrelationships. An example of a heuristic of this type is a heuristicthat permits communicants who have visited a particular virtual areamore than five times to enter without knocking by default, or aheuristic that allows communicants who were present in an area at aparticular time to modify and delete files created by anothercommunicant who was present in the same area at the same time. Querieson the relationship database 36 can be combined with other searches. Forexample, queries on the relationship database may be combined withqueries on contact history data generated for interactions with contactsusing a communication system (e.g., Skype, Facebook, and Flickr) that isoutside the domain of the network infrastructure service environment 30.

4. VIRTUAL AREAS

The communications application 26 and the network infrastructure serviceenvironment 30 typically administer the realtime connections withnetwork nodes in a communication context that is defined by an instanceof a virtual area. The virtual area instance may correspond to anabstract (non-geometric) virtual space that is defined with respect toabstract coordinates. Alternatively, the virtual area instance maycorrespond to a visual virtual space that is defined with respect toone-, two- or three-dimensional geometric coordinates that areassociated with a particular visualization. Abstract virtual areas mayor may not be associated with respective visualizations, whereas visualvirtual areas are associated with respective visualizations.

As explained above, communicants typically are represented by respectiveavatars in a virtual area that has an associated visualization. Theavatars move about the virtual area in response to commands that areinput by the communicants at their respective network nodes. In someembodiments, the communicant's view of a virtual area instance typicallyis presented from the perspective of the communicant's avatar, and eachcommunicant typically is able to view any part of the visual virtualarea around his or her avatar, increasing the level of immersion that isexperienced by the communicant.

FIG. 2 shows an embodiment of an exemplary network node that isimplemented by a computer system 48. The computer system 48 includes adisplay monitor 50, a computer mouse 52, a keyboard 54, speakers 56, 58,and a microphone 60. The display monitor 50 displays a graphical userinterface 62. The graphical user interface 62 is a windows-basedgraphical user interface that can include multiple windows, icons, and apointer 64. In the illustrated embodiment, the graphical user interface62 presents a two-dimensional depiction of a shared virtual area 66 thatis associated with a three-dimensional visualization representing an artgallery. Communicants are represented in the virtual area 66 byrespective avatars 68, 70, 72, each of which may have a respective role(e.g., a curator, an artist, and a visitor) in the context of thevirtual area 66.

As explained in detail below, the virtual area 66 includes zones 74, 76,78. 80, 82 that are associated with respective rules that govern theswitching of realtime data streams between the network nodes that arerepresented by the avatars 68-72 in the virtual area 66. (During atypical communication session, the dashed lines demarcating the zones74-82 in FIG. 2 are not visible to the communicants although there maybe visual cues associated with such zone boundaries.) The switchingrules dictate how local connection processes executing on each of thenetwork nodes establishes communications with the other network nodesbased on the locations of the communicants avatars 68-72 in the zones74-82 of the virtual area 66.

A virtual area is defined by a specification that includes a descriptionof geometric elements of the virtual area and one or more rules,including switching rules and governance rules. The switching rulesgovern realtime stream connections between the network nodes. Thegovernance rules control a communicant's access to resources, such asthe virtual area itself, regions with the virtual area, and objectswithin the virtual area. In some embodiments, the geometric elements ofthe virtual area are described in accordance with the COLLADA—DigitalAsset Schema Release 1.4.1 Apr. 2006 specification (available fromhttp://www.khronos.org/collada/), and the switching rules are describedusing an extensible markup language (XML) text format (referred toherein as a virtual space description format (VSDL)) in accordance withthe COLLADA Streams Reference specification described in U.S.application Ser. Nos. 11/923,629 and 11/923,634.

The geometric elements of the virtual area typically include physicalgeometry and collision geometry of the virtual area. The physicalgeometry describes the shape of the virtual area. The physical geometrytypically is formed from surfaces of triangles, quadrilaterals, orpolygons. Colors and textures are mapped onto the physical geometry tocreate a more realistic appearance for the virtual area. Lightingeffects may be provided, for example, by painting lights onto the visualgeometry and modifying the texture, color, or intensity near the lights.The collision geometry describes invisible surfaces that determine theways in which objects can move in the virtual area. The collisiongeometry may coincide with the visual geometry, correspond to a simplerapproximation of the visual geometry, or relate to application-specificrequirements of a virtual area designer.

The switching rules typically include a description of conditions forconnecting sources and sinks of realtime data streams in terms ofpositions in the virtual area. Each rule typically includes attributesthat define the realtime data stream type to which the rule applies andthe location or locations in the virtual area where the rule applies. Insome embodiments, each of the rules optionally may include one or moreattributes that specify a required role of the source, a required roleof the sink, a priority level of the stream, and a requested streamhandling topology. In some embodiments, if there are no explicitswitching rules defined for a particular part of the virtual area, oneor more implicit or default switching rules may apply to that part ofthe virtual area. One exemplary default switching rule is a rule thatconnects every source to every compatible sink within an area, subjectto policy rules. Policy rules may apply globally to all connectionsbetween the client nodes or only to respective connections withindividual client nodes. An example of a policy rule is a proximitypolicy rule that only allows connections of sources with compatiblesinks that are associated with respective objects that are within aprescribed distance (or radius) of each other in the virtual area.

In some embodiments, governance rules are associated with a virtual areato control who has access to the virtual area, who has access to itscontents, what is the scope of that access to the contents of thevirtual area (e.g., what can a user do with the contents), and what arethe follow-on consequences of accessing those contents (e.g., recordkeeping, such as audit logs, and payment requirements). In someembodiments, an entire virtual area or a zone of the virtual area isassociated with a “governance mesh.” In some embodiments, a governancemesh is implemented in a way that is analogous to the implementation ofthe zone mesh described in U.S. application Ser. Nos. 11/923,629 and11/923,634. A governance mesh enables a software application developerto associate governance rules with a virtual area or a zone of a virtualarea. This avoids the need for the creation of individual permissionsfor every file in a virtual area and avoids the need to deal with thecomplexity that potentially could arise when there is a need to treatthe same document differently depending on the context.

In some embodiments, a virtual area is associated with a governance meshthat associates one or more zones of the virtual area with a digitalrights management (DRM) function. The DRM function controls access toone or more of the virtual area or one or more zones within the virtualarea or objects within the virtual area. The DRM function is triggeredevery time a communicant crosses a governance mesh boundary within thevirtual area. The DRM function determines whether the triggering actionis permitted and, if so, what is the scope of the permitted action,whether payment is needed, and whether audit records need to begenerated. In an exemplary implementation of a virtual area, theassociated governance mesh is configured such that if a communicant isable to enter the virtual area he or she is able to perform actions onall the documents that are associated with the virtual area, includingmanipulating the documents, viewing the documents, downloading thedocuments, deleting the documents, modifying the documents andre-uploading the documents. In this way, the virtual area can become arepository for information that was shared and discussed in the contextdefined by the virtual area.

Additional details regarding the specification of a virtual area aredescribed in U.S. Application No. 61/042,714 (which was filed on Apr. 4,2008), Ser. No. 11/923,629 (which was filed on Oct. 24, 2007), and Ser.No. 11/923,634 (which was filed on Oct. 24, 2007).

5. COMMUNICATIONS APPLICATION

In some embodiments, the communications application 26 includes:

a. local Human Interface Devices (HIDs) and audio playback devices;

b. a So3D graphical display, avatar, and physics engine;

c. a system database and storage facility.

a. Local Human Interface Devices (HIDs) and Audio Playback Devices

The local HIDs enable a communicant to input commands and other signalsinto the client network node while participating in a virtual areacommunications session. Exemplary HIDs include a computer keyboard, acomputer mouse, a touch screen display, and a microphone.

The audio playback devices enable a communicant to playback audiosignals that are received during a virtual area communications session.Exemplary audio playback devices include audio processing hardware(e.g., a sound card) for manipulating (e.g., mixing and applying specialeffects) audio signals, and speakers for outputting sounds.

b. So3D Graphical Display: Avatar, and Physics Engine

The So3D engine is a three-dimensional visualization engine thatcontrols the presentation of a respective view of a virtual area andobjects in the virtual area on a display monitor. The So3D enginetypically interfaces with a graphical user interface driver and the HIDdevices to present the views of the virtual area and to allow thecommunicant to control the operation of the communications application26.

In some embodiments, the So3D engine receives graphics renderinginstructions from the area service. The So3D engine also may read alocal communicant avatar database that contains images needed forrendering the communicant's avatar in the virtual area. Based on thisinformation, the So3D engine generates a visual representation (i.e., animage) of the virtual area and the objects in the virtual area from thepoint of view (position and orientation) of the communicant's avatar inthe virtual area. The visual representation typically is passed to thegraphics rendering components of the operating system, which drive thegraphics rendering hardware to render the visual representation of thevirtual area on the client network node.

The communicant can control the presented view of the virtual area byinputting view control commands via a HID device (e.g., a computermouse). The So3D engine updates the view of the virtual area inaccordance with the view control commands. The So3D engine also updatesthe graphic representation of the virtual area on the display monitor inaccordance with updated object position information received from thearea service 26.

c. System Database and Storage Facility

The system database and storage facility stores various kinds ofinformation that is used by the platform. Exemplary information thattypically is stored by the storage facility includes the presencedatabase, the relationship database, an avatar database, a real user id(RUID) database, an art cache database, and an area applicationdatabase. This information may be stored on a single network node or itmay be distributed across multiple network nodes.

6. CLIENT NODE ARCHITECTURE

A communicant typically connects to the network 18 from a client networknode. The client network node typically is implemented by ageneral-purpose computer system or a dedicated communications computersystem (or “console”, such as a network-enabled video game console). Theclient network node executes communications processes that establishrealtime data stream connections with other network nodes and typicallyexecutes visualization rendering processes that present a view of eachvirtual area entered by the communicant.

FIG. 3 shows an embodiment of a client network node that is implementedby a computer system 120. The computer system 120 includes a processingunit 122, a system memory 124, and a system bus 126 that couples theprocessing unit 122 to the various components of the computer system120. The processing unit 122 may include one or more data processors,each of which may be in the form of any one of various commerciallyavailable computer processors. The system memory 124 includes one ormore computer-readable media that typically are associated with asoftware application addressing space that defines the addresses thatare available to software applications. The system memory 124 mayinclude a read only memory (ROM) that stores a basic input/output system(BIOS) that contains start-up routines for the computer system 120, anda random access memory (RAM). The system bus 126 may be a memory bus, aperipheral bus or a local bus, and may be compatible with any of avariety of bus protocols, including PCI, VESA, Microchannel, ISA, andEISA. The computer system 120 also includes a persistent storage memory128 (e.g., a hard drive, a floppy drive, a CD ROM drive, magnetic tapedrives, flash memory devices, and digital video disks) that is connectedto the system bus 126 and contains one or more computer-readable mediadisks that provide non-volatile or persistent storage for data, datastructures and computer-executable instructions.

A communicant may interact (e.g., input commands or data) with thecomputer system 120 using one or more input devices 130 (e.g. one ormore keyboards, computer mice, microphones, cameras, joysticks, physicalmotion sensors such Wii input devices, and touch pads). Information maybe presented through a graphical user interface (GUI) that is presentedto the communicant on a display monitor 132, which is controlled by adisplay controller 134. The computer system 120 also may include otherinput/output hardware (e.g., peripheral output devices, such as speakersand a printer). The computer system 120 connects to other network nodesthrough a network adapter 136 (also referred to as a “network interfacecard” or NIC).

A number of program modules may be stored in the system memory 124,including application programming interfaces 138 (APIs), an operatingsystem (OS) 140 (e.g., the Windows XP® operating system available fromMicrosoft Corporation of Redmond, Wash. U.S.A.), the communicationsapplication 26, drivers 142 (e.g. a GUI driver), network transportprotocols 144, and data 146 (e.g., input data, output data, programdata, a registry, and configuration settings).

7. SERVER NODE ARCHITECTURE

In some embodiments, the one or more server network nodes of the virtualenvironment creator 16 are implemented by respective general-purposecomputer systems of the same type as the client network node 120, exceptthat each server network node typically includes one or more serversoftware applications.

In other embodiments, the one or more server network nodes of thevirtual environment creator 16 are implemented by respective networkdevices that perform edge services (e.g., routing and switching).

B. Exemplary Communication Session

Referring back to FIG. 2, during a communication session, each of theclient network nodes generates a respective set of realtime data streams(e.g., motion data streams, audio data streams, chat data streams, filetransfer data streams, and video data streams). For example, eachcommunicant manipulates one or more input devices (e.g., the computermouse 52 and the keyboard 54) that generate motion data streams, whichcontrol the movement of his or her avatar in the virtual area 66. Inaddition, the communicant's voice and other sounds that are generatedlocally in the vicinity of the computer system 48 are captured by themicrophone 60. The microphone 60 generates audio signals that areconverted into realtime audio streams. Respective copies of the audiostreams are transmitted to the other network nodes that are representedby avatars in the virtual area 66. The sounds that are generated locallyat these other network nodes are converted into realtime audio signalsand transmitted to the computer system 48. The computer system 48converts the audio streams generated by the other network nodes intoaudio signals that are rendered by the speakers 56, 58. The motion datastreams and audio streams may be transmitted from each of thecommunicant nodes to the other client network nodes either directly orindirectly. In some stream handling topologies, each of the clientnetwork nodes receives copies of the realtime data streams that aretransmitted by the other client network nodes. In other stream handlingtopologies, one or more of the client network nodes receives one or morestream mixes that are derived from realtime data streams that aresourced (or originated) from other ones of the network nodes.

In some embodiments, the area service maintains global state informationthat includes a current specification of the virtual area, a currentregister of the objects that are in the virtual area and a list of anystream mixes that currently are being generated by the network nodehosting the area service. The objects register typically includes foreach object in the virtual area a respective object identifier (e.g., alabel that uniquely identifies the object), a connection handle (e.g., aURI, such as an IP address) that enables a network connection to beestablished with a network node that is associated with the object, andinterface data that identifies the realtime data sources and sinks thatare associated with the object (e.g., the sources and sinks of thenetwork node that is associated with the object). The objects registeralso typically includes one or more optional role identifiers for eachobject; the role identifiers may be assigned explicitly to the objectsby either the communicants or the area service, or may be inferred fromother attributes of the objects or the user. In some embodiments, theobjects register also includes the current position of each of theobjects in the virtual area as determined by the area service from ananalysis of the realtime motion data streams received from the networknodes associated with objects in the virtual area. In this regard, thearea service receives realtime motion data streams from the networknodes associated with objects in the virtual area, tracks thecommunicants' avatars and other objects that enter, leave, and movearound in the virtual area based on the motion data. The area serviceupdates the objects register in accordance with the current locations ofthe tracked objects.

In the process of administering realtime data stream connections withother network nodes, the area service maintains for each of the clientnetwork nodes a set of configuration data, including interface data, azone list, and the positions of the objects that currently are in thevirtual area. The interface data includes for each object associatedwith each of the client network nodes a respective list of all thesources and sinks of realtime data stream types that are associated withthe object. The zone list is a register of all the zones in the virtualarea that currently are occupied by the avatar associated with thecorresponding client network node. When a communicant first enters avirtual area, the area service typically initializes the current objectpositions database with position initialization information. Thereafter,the area service updates the current object positions database with thecurrent positions of the objects in the virtual area as determined froman analysis of the realtime motion data streams received from the otherclient network nodes sharing the virtual area.

IV. INTERFACING WITH A SPATIAL VIRTUAL COMMUNICATION ENVIRONMENT A.Introduction

In addition to the local Human Interface Device (HID) and audio playbackdevices, the So3D graphical display, avatar, and physics engine, and thesystem database and storage facility, the communications application 26also includes a graphical navigation and interaction interface (referredto herein as a “seeker interface”) that interfaces the user with thespatial virtual communication environment. The seeker interface includesnavigation controls that enable the user to navigate the virtualenvironment and interaction controls that enable the user to control hisor her interactions with other communicants in the virtual communicationenvironment. The navigation and interaction controls typically areresponsive to user selections that are made using any type of inputdevice, including a computer mouse, a touch pad, a touch screen display,a keyboard, and a video game controller. The seeker interface is anapplication that operates on each client network node. The seekerinterface is a small, lightweight interface that a user can keep up andrunning all the time on his or her desktop. The seeker interface allowsthe user to launch virtual area applications and provides the user withimmediate access to realtime contacts and realtime collaborative places(or areas). The seeker interface is integrated with realtimecommunications applications and/or realtime communications components ofthe underlying operating system such that the seeker interface caninitiate and receive realtime communications with other network nodes. Avirtual area is integrated with the user's desktop through the seekerinterface such that the user can upload files into the virtualenvironment created by the virtual environment creator 16, use filesstored in association with the virtual area using the native clientsoftware applications independently of the virtual environment whilestill present in a virtual area, and more generally treat presence andposition within a virtual area as an aspect of their operatingenvironment analogous to other operating system functions rather thanjust one of several applications.

FIG. 4 shows an embodiment of a method of interfacing the user with thespatial virtual communication environment. In accordance with thismethod, a spatial layout of zones of a virtual area in a networkcommunication environment is displayed on the display monitor 132 (FIG.4, block 150). A user can have a respective presence in each of one ormore of the zones. Each of the zones can be used to define a respectivespatial state in which the user can have a presence. The zones typicallyare associated with a respective identifier (zone_ID) and one or morerules governing one or more of the users interactions with the virtualarea and with other communicants. Navigation controls and interactioncontrols are presented on the display monitor 132 (FIG. 4, block 152).The navigation controls enable the user to specify where to establish apresence in the virtual area and the interaction controls enable theuser to manage interactions with one or more other communicants in thenetwork communication environment. A respective presence of the user isestablished in each of one or more of the zones in response to inputreceived via the navigation controls (FIG. 4, block 154). In someembodiments, this process involves creating for each of the zones one ormore interaction database records that associate a respective zoneidentifier (zone_ID) with each of the communicants that have a presencein the zone. Respective graphical representations of the communicants ineach of the zones where the communicants respectively have presence aredepicted on the display monitor 132 (FIG. 4, block 156). Thecommunicants typically are represented by two- or three-dimensionalavatar images, which may represent the communicants pseudo-realistically(e.g., with human-like forms) or iconographically (e.g., with circularor spherical sprites or other icons).

The spatial virtual communication environment typically can be modeledas a spatial hierarchy of places (also referred to herein as“locations”) and objects. The spatial hierarchy includes an orderedsequence of levels ranging from a top level to a bottom level. Each ofthe places in a successive one of the levels of the spatial hierarchy iscontained in a respective one of the places in a preceding one of thelevels. Each of the objects in the spatial hierarchy is contained in arespective one of the places. The levels of the spatial hierarchytypically are associated with respective visualizations that areconsistent with a geographical, architectural, or urban metaphor, andare labeled accordingly. The zones of each virtual area are defined byrespective meshes, some of which define elements of a physicalenvironment (e.g., spaces, such as rooms and courtyards, that areassociated with a building) that may contain objects (e.g., avatars andprops, such as view screen objects and conferencing objects).

The navigational controls of the seeker interface allow the user totraverse a path through the virtual environment in accordance with anavigational model that is tied to the underlying spatial hierarchy ofplaces and objects. The network infrastructure service environment 30records the path traversed by the user. In some embodiments, the networkinfrastructure service environment 30 records a history that includes atemporally ordered list of views of the virtual area that are presentedto the user as the user navigates through the virtual area. Each viewtypically corresponds to a view of a respective renderable zone of thevirtual area. In these embodiments, the navigation controls enable theuser to move to selected ones of the zones in the history. Thenavigation controls also include a graphical representation of a depthpath that shows the location in the spatial hierarchy that correspondsto the user's current view of the virtual area. In some embodiments, thegraphical representation of the depth path includes a respectiveuser-selectable link to a respective view of each of the precedinglevels in the spatial hierarchical model of the virtual area above thecurrent view.

The interaction controls of the seeker interface allow the user tomanage interactions with other communicants. The interaction optionsthat available to the user typically depend on the zones in which theuser has a presence. In some embodiments, the interaction options thatare available to communicants who have presence in a particular zone aredifferent from the options that are available to other communicants whodo not have presence in that zone. The level of detail and interactivityof the user typically depend on whether or not the user has a presencethe particular zone. In one exemplary embodiment, if the user is outsidethe virtual area, the user is provided with a minimal level of detail ofthe interactions occurring within the virtual area (e.g., the user cansee an outline of the floorplan, background textures, and plants of thearea, but the user cannot see where other communicants are present inthe area); if the user is within the virtual area but outside aparticular zone of the area, the user is provided with a medium level ofdetail of the interactions occurring within the particular zone (e.g.,the user can see where other communicants are present in the area, see avisualization of their current states—talking, typing a chat message,whether or not their headphones and microphones are turned-on—and seewhether any of the view screens are active); if the user is within theparticular zone of the area, the user is provided with full level ofdetail of the interactions occurring with the particular zone (e.g., theuser can see a thumbnail of the file being shared on a view screen, hearand speak with other communicants in the area, and see elements of a logof chat messages that were generated by communicants in the zone). Insome embodiments, the switching and governance rules that are associatedwith the zones of the virtual area control how the networkinfrastructure services distinguish between those who have presence inthe particular zone from those who do not.

B. Navigating and Interacting in a Spatial Virtual CommunicationEnvironment

1. Basic Navigation and Interaction Model

FIG. 5 shows an embodiment 160 of the seeker interface that is displayedin a window 162 and includes one or more tabs 164, each of which has abrowsing area 166 and a toolbar 168.

Each of the tabs 164 typically is associated with a respective view ofthe virtual environment. In the illustrated embodiment, the viewpresented in the table 164 (labeled “My Areas”) is associated with arespective set of virtual areas, which may be a default set of virtualareas in the virtual environment or it may be a set of virtual areasthat is identified by a respective filter on the interaction database.In particular, the tab 164 is associated with a set of three virtualareas (i.e., Acme, Sococo Help Area, and Personal Space), which may be adefault set of areas that are associated with the user or may beidentified by a filter that identifies all of the areas that areassociated with the user (e.g., all of the areas in which the user hasinteracted). Additional tabs may be created by selecting the “+” button170.

The browsing area 166 of each tab shows graphic representations of theelements of the virtual environment that are associated with the tab.For example, in the illustrated embodiment, the browsing area 166 showstop-level views 172, 174, 176 of the virtual areas that are associatedwith the tab 164. The user may navigate to the next lower level in thespatial hierarchical model of any of the virtual areas by selecting thecorresponding graphic representation of the virtual area.

The toolbar 168 includes an adaptive set of navigational and interactiontools that automatically are selected by the seeker interface based onthe current location of the user in the virtual environment. In theillustrated embodiment, the toolbar 168 includes a back button 178, aforward button 180, a placemarks button 182, and a home button 184. Theback button 178 corresponds to a backward control that enables the userto incrementally move backward to preceding ones of the zones in thehistory of the zones that were traversed by the user. The forward button180 corresponds to a forward control that enables the user toincrementally move forward to successive ones of the zones in thehistory of the zones that were traversed by the user. The placemarksbutton 182 provides a placemarking control for storing links to zonesand a placemark navigation control for viewing a list of links topreviously placemarked zones. In response to a user selection of theplacemarking control, a placemark is created by staring an image of thelocation shown in the current view in association with a hyperlink tothe corresponding location in the virtual area. In response to a userselection of the placemark navigation control, a placemarks window ispresented to the user. The placemarks window includes livevisualizations of all locations that have been placemarked by the user.Each of the images in the placemarks window is associated with arespective user-selectable hyperlink. In response to user selection ofone of the hyperlinks in the placemarks window, a view of the virtualarea corresponding to the location associated with the selectedhyperlink is automatically displayed in the browsing area 166 of theseeker interface window 162. The home button 184 corresponds to acontrol that returns the user to a view of a designated “home” locationin the virtual environment (e.g., the view shown in FIG. 5).

Referring to FIG. 6, in response to a user selection of the graphicrepresentation 172 of the Acme virtual area shown in FIG. 5, theplatform moves the user into a default zone of the virtual area,automatically establishes a presence for the user in the default zone,and automatically establishes a network connection between the user andeach of the other communicants occupying the selected zone. Based on theswitching rules established by the area designer, the platformmultiplexes the specified realtime data streams (e.g., streams from themicrophones and speakers) of all the communicants in default zone suchthat they can both see each others' sprites or avatars and communicatewith (e.g., speak to and hear) each other.

The seeker interface shows a top or floorplan view of the Acme virtualarea in the browsing area 166 of the tab 164 and provides the user witha default set of interaction options. In the illustrated embodiment, apresence automatically is established in a courtyard zone 190 of thevirtual area, and the users microphone and default speakers (e.g.,headphones) are turned-on. In the floorplan view shown in FIG. 6, theuser is represented by a circular sprite 192; the other users in theAcme virtual area also are represented by respective circular sprites194-202. The state of the users speakers is depicted by the presence orabsence of a headphones graphic 203 on the user's sprite 192: when thespeakers are on, the headphones graphic 203 is present and, when thespeakers are off, the headphones graphic 203 is absent. The state of theusers microphone is depicted by the presence or absence of a microphonegraphic 206 on the users sprite 192 and a series of concentric circles204 around the users sprite 192: when the microphone is on, themicrophone graphic 206 and the concentric circles 204 are present and,when the microphone is off, the microphone graphic 206 and theconcentric circles 204 are absent. The headphones graphic 203, theconcentric circles 204, and the microphone graphic 206 serve as visualreminders of the states of the users sound playback and microphonedevices.

In addition to the backward button 178, the forward button 180, theplacemarks button 182, and the home button 184, the toolbar 168 alsoincludes a series of one or more breadcrumb buttons 207 that originatefrom and include the home button 184. The breadcrumb buttons 207correspond to a hierarchical sequence of successive, user-selectablelinks. Each of the successive links corresponds to a view of arespective level in the hierarchical model of the virtual area in whicheach successive level is contained by preceding ones of the levels. Inthe illustrated embodiment, the breadcrumb buttons 207 include the homebutton 184 and an Acme button 208 that corresponds to the current viewof the Acme virtual area shown in FIG. 6. The breadcrumb buttons 207provide the user with single button selection access to respective viewsof different levels of the virtual environment. The toolbar 168additionally includes a button 210 and a settings button 212.

When an area is selected or in focus, the button 210 appears as aniconographic representation of two people and is labeled “members,” andallows members and moderators to see the list of people associated withan area. When an audio or chat zone is in focus, the button 210 has adifferent image (e.g., an image of an arrow pointing downward onto aplane to represent the operation of getting) and is labeled “get”. Inresponse to a user selection of the button 210, a list of all themembers of the Acme virtual area 166 is displayed in a user interface.The user may select any of the communicants in the list and click a getbutton that is presented in the user interface; in response, theplatform transmits an invitation to the selected communicant to join theuser in a designated one of the zones.

The settings button 212 provides the user with access to a set ofcontrols for specifying default settings that are associated with thecurrent area.

The user may navigate from the view of the Acme virtual area shown inFIG. 6 back to the view shown in FIG. 5 in a variety of different ways.For example, the user may select any of the back button 178, the homebutton 184, or any part of the zone 211 that is outside the boundary ofthe graphic representation of the Acme virtual area shown in FIG. 6.

The user may navigate to any of the zones of the Acme virtual area. Insome embodiments, in order to move to a zone, the user transmits acommand to execute one of the zones displayed on the monitor, (e.g., byselecting the zone and then clicking the Enter button (in the toolbar),or, as a shortcut, double-clicking the zone) and, in response, theplatform depicts the user's avatar in the zone corresponding to the zoneobject. In response to the zone execution command, the seeker interfaceoutlines the zone (indicating to the user that it is selected) andupdates the breadcrumb buttons 207 to show the selected zone location inthe hierarchy. Toolbar buttons specific to the selection will alsoappear to the right of the breadcrumb buttons 207.

The user also may interact with any objects (e.g., a screen, table, orfile) that are present in a zone. In some embodiments, in order tointeract with an object, the user transmits a command to execute one ofthe objects displayed on the monitor, (e.g., by selecting the object andthen clicking the View button (in the toolbar), or, as a shortcut,double-clicking the object) and, in response, the platform performs anoperation with respect to the object (e.g., present a zoomed-in view ofthe object, open an interaction interface window, etc.). In response tothe object execution command, the seeker interface outlines or otherwisehighlights the prop (indicating to the user that it is selected) andupdates the breadcrumb buttons 207 to show the selected object locationin the hierarchy. Toolbar buttons specific to the selection will alsoappear to the right of the breadcrumb buttons 207.

As shown in FIG. 7, in some embodiments, in response to the userentering a Main space 213, the platform automatically establishes anetwork connection between the user and each of the other communicantsoccupying the selected zone. The user also may enter (and therebyestablish a presence in) a space by selecting the space and clicking theEnter button; this causes the platform to move the user's sprite fromits current location (i.e., Courtyard) to the selected space (i.e.,Main) (see FIG. 8). The settings of user's speakers and microphonetypically do not change when the user is moved from one location toanother.

After the user has moved into the Main space 213 (see FIG. 8), the usermay navigate to a different view of the virtual area by inputting acommand to execute (typically double-clicking) any part of the currentview surrounding the Main space 213. For example, in response to a userdouble-clicking of any part of the zone 211 that is outside the boundaryof the Main space 213 and the Acme virtual area, the seeker interfacedisplays the zoomed-out view of the Acme virtual area that is shown inFIG. 9. The user also may navigate to a different view of the virtualarea by selecting another space in the virtual area (e.g., the WestConference space 214, the East Conference space 215, or the Courtyardspace 190) and by clicking Enter, by double-clicking the zone, or byselecting one of the breadcrumb buttons 207 (e.g., the Acme breadcrumbbutton 208).

In some embodiments, navigating to a different view changes the user'spresence state, whereas panning and zooming only changes the user's viewstate. In some cases, navigating will also change view state as aconvenience to the user. The following examples illustrate thisinterface feature.

-   -   Example 1: User is in the Courtyard, selects Main, and clicks        the Enter button (or double-clicks Main). The user is now        present in the Main space and is no longer present in the        Courtyard space. The user's view of the map doesn't change        except to paint his avatar in his new position (and any other        changes that relate to the capabilities he now has because of        his new location),    -   Example 2: User is in Main, selects a Viewscreen, and clicks        View (or double-clicks the Viewscreen). The user continues to be        present in Main. The user's seeker window updates to show the        contents of the Viewscreen.

In other embodiments, the navigation to a different view does not affectthe presence of the user in the Main space 213.

Referring back to FIG. 8, in response to the context change resultingfrom the user's entry into the Main space 213, the toolbar 168automatically is modified to include a leave button 216. In response toa user selection of the leave button 216, the user's presence in theMain space 213 is terminated and the users avatar 192 is removed fromthe Main space 213, as shown in FIG. 10. After the user has left theMain space 213, the leave button 216 automatically is removed from thetoolbar 168 because it is no longer relevant in the current selection.

After the user has moved into the Main space 213 (see FIG. 8), the usermay toggle one or both of the headphones button 218 and the microphonebutton 220 in order to selectively turn-on and turn-off one or both ofthe user's speakers and microphone. As shown in FIG. 11, the headphonesgraphic 203, the concentric circles 204 around the user's sprite 192,and the microphone graphic 206 on the user's sprite 192 are omitted whenthe user's speakers and microphone both are turned-off.

2. Chat Interaction Model

Referring to FIG. 12, the user may initiate a chat with the communicantsin the zone by selecting a chat button 222 in the toolbar 168. Inresponse to a user selection of the chat button 222, a separate chatwindow 224 is opened. The chat window 224 includes a toolbar 226, a chatlog area 228, a text box 230, and a Send button 232. The toolbar 226includes an independent set of navigation and interaction controlbuttons, including a headphones button 234 for toggling on and off theuser's speakers, a microphone button 236 for toggling on and off theuser's microphone, a get button 238 for getting people (discussedabove), a minimap button 240 for opening a minimap view (discussedbelow), a leave button 242 for leaving the current zone (discussedabove), and a rooms button 244 for opening a separate navigationinterface window that displays a list of spaces (e.g., rooms) in thevirtual area (discussed below). As shown in FIGS. 12-14, the chat logarea 228 displays a log of events that are associated with the currentlyactive space (i.e., Main) and sequences of text messages that the userhas exchanged with other communicants in the currently active space(i.e., Main). An exemplary set of events that are recorded in the chatlog area 228 include changes in the presence status of communicants inthe currently active space and changes in the speaker and microphonesettings of the communicants in the currently active space. The user mayenter text messages in the text box 230 and transmit the text messagesto the other communicants in the currently active space by selecting theSend button 232. In some embodiments, the communicants in a particularroom zone send their chat message to all other communicants in aseparate chat zone (which often shares a similar boundary with the roomzone). In this way, a given room can have more than one chat zone and achat zone can span more than one room if the needs of the applicationrequire it.

As shown in FIG. 15, the user may toggle the minimap button 240 in thechat window 224 to open a minimap 246 that shows a view of the currentlyactive space in the chat window 224. The minimap view 246 shows a viewof the currently active area (i.e., the Main space 213) as well asadjacent areas of the virtual area. The minimap 246 provides the sametype of navigation functionality as the browsing area 166 of the tab164. For example, the user may inputting a command to execute (typicallyby double-clicking) a space represented in the minimap 246 to navigateto the corresponding space of the virtual area; and the user also mayinputting a command to execute (typically by double-clicking) a regionsurrounding the currently presented space in order to navigate to a viewof the next higher level in the hierarchical spatial model of thevirtual area. The minimap 246 also includes an open in seeker button 248for opening the currently selected zone in the seeker window.

Referring to FIGS. 16-18, the chat window 224 is separate and distinctfrom the seeker interface window 168. The chat window 224 can overlapthe seeker interface window 168 (FIG. 15) and vice versa (FIG. 16). Theseeker interface window 168 can be closed, and the user can continue tointeract with other communicants (FIG. 17) and navigate to other spacesin the virtual area (FIG. 18) using the interface controls availablethrough the chat window 224. FIG. 18 shows the situation in which theuser has navigated to a view of the East Conference space 215 bydouble-clicking on the corresponding region of the minimap 246, and theplatform has established a presence for the user in the East Conferencespace 215.

3. Get Interaction Model

Referring to FIG. 19, in response to a user selection of the get button210, a list of available communicants is displayed in a separate pop-upwindow 250. The get button 210 is presented in association with arespective one of the zones in which the user has presence. In responseto a user selection of one of the communicants in the list of availablecommunicants, the platform transmits an invitation to the selectedcommunicant to join the user in the respective zone. For example, FIG.19 shows a situation in which the get button 210 is presented inassociation with the Main space (where the user has a presence). Theuser has selected “Elizabeth Baker” in the list of availablecommunicants displayed in the window 250. In response to the selectionof the Send button 251, the platform transmits an invitation to thecommunicant associated with the name Elizabeth Baker to join the user inthe Main space 213 (e.g., “Please join me in Main.”)

4. Contacts Window

In some embodiments, the seeker interface additionally includes acontacts window that has a get button and a list of contacts that areassociated with the user, along with an indication of respective ones ofthe zones in which the contacts have presence. The user can select oneor more of the contacts in the list and, in response to a user selectionof the get button, the system transmits an invitation to each of theselected contacts to join the user in a respective one of the zones inwhich the user has presence.

In some embodiments, the graphic representations of the othercommunicants in a space are selectable like other objects. For example,in response to a user selection of one of the graphical representationsof the other communicants, the seeker interface displays a contactswindow that contains information and user-selectable controls relatingto the communicant associated with the selected graphicalrepresentation. The user selectable controls include a mute button thatenables the user to selectively mute audio signals received from thecommunicant associated with the selected graphical representation.

FIG. 20 shows an exemplary contacts window 247 that allows a user toview his or her communication history with any of his or her realtimecontacts. In response to the positioning of a mouse pointer over thecontact's avatar, the platform opens the contacts window 247, whichdisplays all the recent communications history with that communicant(e.g., text chat, voice conversations, files shared etc). In theillustrated embodiment, the interface contains a recent text chat withKaren in which the messages between the user and Karen are listedvertically in chronological order, with the user's messages displayed inleft-shifted message blocks and Karen's messages displayed inright-shifted message blocks. The interface also displays the basicmethods for connecting with another user on Sococo:

-   -   Go—takes the user to the place where that contact is    -   Get—brings that communicant into the place the user is in    -   Text—sends an instant message    -   Whisper—sends a short voice message (scrap of voice) that is        mixed into a contact's headset such that only the contact can        hear it. The HUD shows the user where the contact is and what        the contact is doing and, thereby, provides the user with useful        context information that can inform the users selection of the        content of the voice message.        The platform typically includes smart defaults such that the        user can Go or Get people that the user communicates with        continuously, but might have to ask permission to Go to or Get a        communicant that is a more casual contact. Additional details        regarding the construction and operation of embodiments of this        type are contained in U.S. Patent Application No. 61/042,714,        filed Apr. 4, 2008 (see, e.g., §VII entitled “HEADS-UP        DISPLAY”).

5. Minimap Navigation and Interaction

Referring to FIG. 21 in addition to the controls described above, thetoolbar 168 also includes a minimap button 254. The user may select theminimap button 254 to open a minimap 256 that is overlaid on the view ofthe currently active space. The minimap 256 shows a view of the virtualarea from a perspective that is one level higher in the hierarchicalspatial model of a virtual area above the current view that is presentedin the browsing area 166 of the tab 164. In the exemplary situationshown in FIG. 21, the currently active space is the Main space 213 andthe view shown in the minimap 256 corresponds to the floorplan view ofthe Acme space, which is the next higher level in the hierarchicalspatial model of the virtual area above the view of the Main space 213shown in the browsing area 166. Every pixel in the minimap 256 isassociated with a respective reference to a corresponding location inthe view shown in the minimap 256. In response to a user inputting acommand to execute (typically by double-clicking) of any part of theminimap 256, the seeker interface presents a view of the correspondinglocation in the browsing area 166 of the tab 164 and (if the target is azone, moves the communicant to that new location). Thus, the user candouble-click on any part of the West Conference space 214, the Courtyardspace 190, the East Conference space 215, etc., and the seeker interfacewill present in the browsing area 166 a view of the selected space alongwith surrounding areas of the virtual area immediately adjacent theselected space and move the user's presence there.

The user also can select any of the objects in the currently activearea, and the minimap 256 will update the toolbar to show commandsrelevant to the selection.

For example, FIG. 22 shows a situation in which the user hasdouble-clicked a table object 258 in the view of the Main space 213shown in FIG. 21. In response to the users selection of the table object258, the seeker interface presents in the browsing area 166 of the tab164 a zoomed-in view of the table object 258 and the areas of the Mainspace 213 surrounding the table object 258. In addition, the seekerinterface shows in the minimap 256 a view of the Main space 213 and theareas of the Acme space surrounding the Main space 213. The breadcrumbbuttons 207 shown in the toolbar 168 of the tab 164 include a Tablebutton 259 that corresponds to the current level in the hierarchicalspatial model of the virtual area. The toolbar 168 also includes anupload button 261 that allows the user to upload a data file from theclient node 12 to a repository that is maintained by the networkinfrastructure service environment 30. In response to a user selectionof a data file to upload, the network infrastructure service environment30 stores the uploaded file in the repository and creates a databaserecord that associates the data file with the table object 258. Othercommunicants who enter the Main space 213 are able to view the contentsof the uploaded data file and, subject to governance rules associatedwith the Main space 213, optionally may be able to modify or delete thedata file.

FIG. 23 shows a situation in which the user has selected a file object160 on the table object 258 in the view of the Main space 213 shown inFIG. 21 and clicked View (or double-clicked the file object). Inresponse to the user command, the seeker interface presents in thebrowsing area 166 of the tab 164 a zoomed-in view of the contents of thedata file associated with the file object 260 and areas of the tableobject 258 surrounding the file object 260. In addition, the seekerinterface shows in the minimap 256 a view of the table object 258 andareas of the Main space 213 surrounding the table object 258. Theminimap 256 also shows a highlighted view 262 of the selected data file260 on the table object 258. The breadcrumb buttons 207 shown in thetoolbar 168 of the tab 164 include a proposal.pdf button 264 thatcorresponds to the current level in the hierarchical spatial model ofthe virtual area. The toolbar 168 also includes a download button 266that allows the user to download the selected data file 260 from therepository that is maintained by the network infrastructure serviceenvironment 30 to the client node 12.

FIG. 24 shows a situation in which the user has double-clicked aconferencing object 270 on the table object 258 in the view of the Mainspace 213 shown in FIG. 21. In response to the user selection of theconferencing object 270, the seeker interface presents in the browsingarea 166 of the tab 164 a view of a teleconferencing interface 272 andareas of the table object 258 surrounding the conferencing object 270.The teleconferencing interface 272 includes a text box 271 for receivinga telephone number and a dial button 273 for transmitting the telephonenumber to a telephony service that connects the client node 12 to anetwork node that is associated with the telephone number. The seekerinterface also shows in the minimap 256 a view of the table object 258and areas of the Main space 213 surrounding the table object 258. Theminimap 256 also shows a highlighted view 274 of the selectedconferencing object 270 on the table object 258. The breadcrumb buttons207 shown in the toolbar 168 of the tab 164 include a Polycom button 276that corresponds to the current level in the hierarchical spatial modelof the virtual area.

As shown in FIGS. 21-24, at the room level of the hierarchical spatialmodel of the virtual area and lower, the minimap 256 is associated withthe following interaction and navigation controls that operate asdescribed above: a speakers button 280, a microphone button 282, a chatbutton 284, a get (or people) button 286, and a leave button 288.

In the embodiment shown in FIGS. 21-24 the minimap 256 is presented as apicture-in-picture view that is superimposed on the view of thesuccessively lower view of the hierarchical spatial model of the virtualarea that is presented in the browsing area 166 of the tab 164. In otherembodiments, the minimap 256 may be presented in a separate and discretewindow that may be tiled over or under the main window 162 or presentedin a separate tab of the seeker interface window 162.

6. View Screen Objects

FIG. 25 shows a situation in which the user has double-clicked a wallobject 290 in the view of the Main space 213 shown in FIG. 21.

In response to the users command to execute the wall object 290, theseeker interface presents in the browsing area 166 of the tab 164 a2.5-dimensional view of the contents of the wall object 290 and areas ofthe Main space 213 surrounding the wall object 290. In the embodimentshown in FIG. 25, the selected wall object 290 corresponds to a NorthWall of the Main space 213. The North Wall contains a pair of viewscreen objects 289, 291 (labeled “2” and “3”, respectively) that arepresented on the North Wall object 290. The view screen objects 289, 291can be used to present the contents of data files that are associatedwith the North Wall of the Main space 213. The 2.5-dimensional view alsoshows a West Wall object 293 and an East Wall object 295 that arelocated on the left and right sides of the North Wall object 290,respectively. Each of the West Wall object 293 and the East Wall object295 includes a respective view screen object 293, 295 (labeled “1” and“4”, respectively) that can be used to present the contents ofrespective data files.

The interface also shows in the minimap 256 a view of the Main space 213and areas of the Acme space surrounding the Main space 213. The minimap256 also shows a highlighted view 292 of the selected North Wall object290 in the Main space 213.

The breadcrumb buttons 207 shown in the toolbar 168 of the tab 164include a North Wall button 294 that corresponds to the current level inthe hierarchical spatial model of the virtual area. The toolbar 168includes a rotate left button 296 and a rotate right button 298 thatallow the user to rotate the current view left and right by ninetydegrees (90°) so that the user can view the contents of different wallsof the Main space in the central viewing area of the 2.5-dimensionalview of the Main space 213. The user also can double-click a differentone of the walls that are shown in the minimap 256 in order to changethe contents that are presented in the central viewing area of the2.5-dimensional view of the Main space 213.

FIG. 26 shows the seeker interface after the user has selected the viewscreen object 291 (labeled “3”) on the North Wall in the view of theMain space 213 shown in FIG. 25. The user may have executed the viewscreen object 291 either by double-clicking any part of the view screenobject 291 shown in the central viewing area of the 2.5-dimensional viewshown in the browsing area 166 of the tab 164 or by double-clicking thecorresponding view screen object in the minimap 256 shown in FIG. 25. Inresponse to the user double-clicking on the view screen object 291 shownin FIG. 25, the browsing area 166 of the tab 164 shows a zoomed-in viewof the view screen object 291 and areas of the North Wall object 290surrounding the view screen object 291, as shown in FIG. 26. The usermay double-click on any of the areas of the North Wall object 290surrounding the view screen object 291 in the browsing area 166 shown inFIG. 26 in order to return to the browsing area and minimap views of theMain space 213 that are shown in FIG. 25. In the embodiment shown inFIG. 26, the minimap 256 shows a 2.5-dimensional view of the contents ofthe wall object 290 along with areas of the Main space surrounding thewall object 290: this view corresponds to the preceding level in thehierarchical spatial model of the virtual area. The breadcrumb buttons207 include a Screen 3 button 302 that corresponds to the current levelin the hierarchical spatial model of the virtual area. The toolbar 168includes a Share button 304 that allows a user to designate a shareddata file whose contents will be presented on the view screen object 291(i.e., Screen 3) and thereby allow all communicants in the Main space213 to simultaneously share the data file. The view screen object 291shown in the browsing area 166 includes a Share link 306 that alsoallows the user to designate the shared data file.

In response to a user selection of the Share button 304 or the Sharelink 306, the seeker interface opens a separate Select Source interfacewindow 310 that allows the user to designate a data file whose contentswill be shared on the view screen object 291. The Select Sourceinterface includes a text box 312 for receiving a data file identifier(e.g., a local data file storage path name or a Uniform ResourceIdentifier (URI)) and a Browse button 314 that enables the user tobrowse different locations for the data file identifier. The data fileidentifier may be located on the client node 12 or another network node.The Select Source interface window 310 also includes a favorites button316 that allows the user to browse a list of previously bookmarkedfiles, applications, or URIs for the data file identifier.

Referring to FIG. 28, after the user has selected a data file identifierin the Select Source interface, the contents of the selected data fileare displayed on the view screen object 291 in both the browsing area166 and the minimap 256. In the illustrated embodiment, the designateddata file corresponds to a PowerPoint® data file that contains a slideof a pie chart. The user can terminate the presentation of the data fileon the view screen object 291 by selecting the clear icon 318.

7. Multiple Presence

Users are able to concurrently have a respective presence in multiplelocations in a virtual area. In this way, users can monitor andparticipate in the interactions occurring in multiple locations at thesame time. In some embodiments, the user establishes a respectivepresence in each of multiple locations by inputting a copy presencecommand through the seeker interface. In some embodiments, the userinputs the copy presence command either by shift-clicking the targetzone where the user intends to establish an additional presence or byshift-clicking a reference (e.g., a hyperlink) to the target zone (e.g.,by shift-double-clicking a breadcrumb or placemark that is linked to thetarget zone). Note that the user can shift-double click an object orzone (since clicking would merely select it), whereas the user canmerely shift-click a reference, since the reference can't be selected.In response to receipt of a copy presence command in connection with auser selection of one of the zones displayed on the monitor, the systemdepicts a respective graphical representation of the user in theselected zone while continuing to depict a respective graphicalrepresentation of the user in each of the zones where the user hadpresence before the selection of the zone. In some embodiments, each ofthe graphical representations of the user is depicted in a respectiveview that is presented in a separate window on the display. The windowsmay be associated with respective user-selectable tabs and, in responseto a user selection of any of the tabs, the seeker interface displaysonly content of the window respectively associated with the selected tabin a common display area.

FIG. 29 shows the situation in which the user has shift-clicked a linkto the Courtyard space 190 via the seeker interface window 162 shown inFIG. 28 (e.g., by using the placemarks navigation control). In responseto the shift-click selection of the Courtyard space link, the platformcreates a second seeker interface window 320 that is independent anddiscrete from the first seeker interface window 162. The second seekerinterface window 320 is identical in all respects to the first seekerinterface window 162, except that it shows a copy 322 of the user'ssprite in the view of the Courtyard space 190 that is presented in thebrowsing area 324 of the second seeker interface window 320. The secondseeker interface window 320 includes one or more tabs, each of which hasa respective browsing area and a toolbar. The toolbar includes a backbutton, a forward button, a placemarks button, and a home button. Thetoolbar also includes a speakers button 326, which enable the user toindependently control local (i.e., at the client node 12) soundrendering of audio associated with the Courtyard space 190, and amicrophone button 328, which allows the user to turn-on and turn-off themicrophone at the client node 12. In some embodiments, the platformallows the user to selectively transmit local microphone signals to onlyone of the zones in which the user has presence at a time.

The user can manipulate the second seeker interface window 320independently of the first seeker interface window 162. For example, theuser can close the second seeker interface window 320 without affectingthe first seeker interface window 162 as shown in FIG. 30. The user alsocan move the second seeker interface window 320 to a different locationon the display relative to the first window 162 as shown in FIG. 31.Other window operations (e.g., resizing, tiling over or under otherwindows) also can be performed on the second seeker interface window320.

8. Browsing Areas and Spaces

Referring to FIGS. 32 and 33, in addition to the seeker interface window162, some embodiments allow the user to open a separate navigationinterface window 340 that provides the user with additional tools fornavigating the virtual environment. The navigation interface window 340includes an Areas tab 342 and a Rooms tab 344.

As shown in FIG. 32, the Areas tab 342 shows a list of graphicalrepresentations of the virtual areas that are associated with the user(e.g., the Acme area 172 and the Sococo Help Desk 174). The virtual arealist may be a static list or it may be generated dynamically based onthe results of a query on the relationship database 36 for virtual areasthat are associated with the user. In response to the users selection ofany of the graphical representations of the virtual areas shown in theAreas tab 342, the system automatically updates the view that isdisplayed in the seeker interface window 162, the user's presence state,and the users network connections to reflect the users entry into theselected area.

As shown in FIG. 33, the Rooms tab 344 shows a set of floating windows350, 352 each of which is associated with a filtered list of therenderable zones of one or more of the virtual areas that are associatedwith the user. In the illustrated embodiment, the “Present At” window350 is associated with a list of graphical representations of all therenderable zones in which the user has a respective presence, and the“All” window 352 is associated with a list of all of the renderablezones in each of the virtual areas in which the user has a respectivepresence. Additional filtered lists of spaces are possible. For example,in some embodiments, the Rooms tab 344 includes a floating window thatis associated with a list of graphical representations of all therenderable zones of a virtual area that are active (i.e., that have atleast one person in them). In some embodiments, the Rooms tab 344includes a floating window that is associated with a list of graphicalrepresentations of all the renderable zones that the user has associatedwith a placemark (e.g., a zone corresponding to the user's office). Inresponse to the user's selection of any of the graphical representationsof the zones shown in the Rooms tab 344, the system automaticallyupdates the view in the seeker interface window 162, the user's presencestate, and the user's network connections to reflect the user's entryinto the selected zone.

9. Notifications

Referring to FIGS. 34, 35, and 36, some embodiments display variousnotifications of events occurring in the zones of one or more virtualareas. Each notification window typically describes a single event thatis associated with a respective one of the zones (e.g., reception of anew chat message, reception of an invitation to join another communicantin a particular zone, and a change in a communicant's presence state ina zone). For example, FIG. 34 shows an embodiment in which anotification window 360 is displayed each time a communicant leaves arenderable zone in which the user has a respective presence (e.g.,“Frank Rodriguez has left Main”). FIG. 35 shows an embodiment in which anotification window 362 is displayed each time a communicant enters arenderable zone in which the user has a respective presence (e.g.,“Frank Rodriguez has entered Main”). FIG. 36 shows an embodiment inwhich a notification window 364 is displayed each time the user receivesan invitation to join another communicant in a particular zone (e.g., amessage from Hand Kim to “Please join me in the courtyard”).

In some embodiments, the notification windows 360, 362 are implementedby so-called “toast” windows that dynamically pops up out of corner ofthe user's desktop.

In some embodiments, the notification window includes a hyperlink to therespective zone that is the subject of the notification. For example, inthe embodiment shown in FIG. 36, the notification window 364 includes aminimap 366 that shows a graphical representation of the Courtyard space190 that is associated with a hyperlink reference to the Courtyard space190. In response to a user selection of the hyperlink, the platformmoves the graphical representation of the user to the respective zone(e.g., the Courtyard space 190) from the zone (e.g., the Main space 213)where the user had presence before the selection and establishes apresence for the user in the respective zone (e.g., the Courtyard space190).

V. CONCLUSION

The embodiments that are described herein provide improved systems andmethods for navigating and interacting in spatial virtual communicationenvironments. These embodiments provide an interface that includesnavigation controls that enable a user to navigate virtual areas andinteraction controls that enable the user to interact with othercommunicants in the virtual areas. The navigation controls allow theuser to change his or her focus (e.g., the current view of the virtualarea or the current zone or zones where the user has presence) using avariety of intuitive point-and-click browsing methods in the context ofa hierarchical spatial model of a virtual area. In some embodiments, theinterface adaptively presents navigation controls and interactioncontrols that are appropriate to the user's needs in the context of theuser's current focus.

Other embodiments are within the scope of the claims.

1-65. (canceled)
 66. A method, in a network communication environment inwhich a user and one or more other communicants operating respectivenetwork nodes establish respective presences in virtual locations inwhich the communicants are represented by respective avatars, the methodcomprising: administering realtime communications between the networknodes of communicants who are present in respective ones of the virtuallocations; recording a history comprising a temporally ordered list ofpresences states of the user in respective ones of the virtuallocations; presenting navigation controls for navigating the user'spresence from a current one of the virtual locations in which the useris present to a selected one of the virtual locations in the history.67. The method of claim 66, further comprising: displayinguser-selectable links, wherein each of the links references a respectiveone of the virtual locations, and the links are displayed hierarchicallyaccording to the positions of the referenced virtual locations in ahierarchical model that organizes the virtual locations into a hierarchyof successive levels where each successive level is contained bypreceding ones of the levels; and based on user selection of arespective one of the links, navigating the user to the virtual locationreferenced by the selected link.
 68. The method of claim 67, whereinones of the user-selectable links reference virtual locations that aredefined by respective zones of a virtual area in which the zones arearranged in a spatial layout defined by the hierarchical model.
 69. Themethod of claim 68, wherein respective ones of the zones are associatedwith respective graphical representations of physical spaces associatedwith a building that are demarcated by respective visual geometricboundaries in the spatial layout.
 70. The method of claim 68, whereineach of one or more of the zones contains one or more respective objectseach of which represents a respective interface element for establishinga respective communication channel for realtime communications betweenrespective ones of the communicants in the zone.
 71. The method of claim70, wherein a particular one of the zones contains a viewscreen objectthat has a respective graphical representation in the particular zoneand is associated with functionality for sharing renderings of contentsof data files between communicants who are present in the particularzone.
 72. The method of claim 67, wherein ones of the user-selectablelinks reference virtual locations that are defined by multiple virtualareas, each of the virtual areas is represented by a level in thehierarchical model and is a separate and distinct computer-managed spacethat comprises a respective spatial visualization and a respective setof one or more zones each of which defines a respective one of thevirtual locations.
 73. The method of claim 66, wherein the presentingcomprises depicting a backward control enabling the user toincrementally change the user's current virtual location of presence topreceding ones of the virtual locations in the history.
 74. The methodof claim 66, wherein the presenting comprises depicting a forwardcontrol enabling the user to incrementally change the user's currentvirtual location of presence to successive ones of the virtual locationsin the history.
 75. The method of claim 66, wherein the presentingcomprises presenting a placemark control enabling the user to create aplacemark that references a particular one of the virtual locations. 76.The method of claim 75, further comprising: presenting the placemark tothe user; and based on user selection of the placemark, navigating theuser's presence to the particular virtual location referenced by theplacemark.
 77. The method of claim 66, further comprising: presentingdifferent views of respective ones of the virtual locations as the usernavigates from one virtual location to another; and based on user input,creating a placemark comprising an image of a current one of the viewsand a reference to a respective virtual location in the current view.78. The method of claim 77, further comprising: presenting a placemarkswindow comprising images of respective ones of the views that have beenassociated with respective placemarks, wherein each of the images in theplacemarks window is associated with a respective user-selectable linkthat references a respective one of the virtual locations; and based onuser selection of one of the links in the placemarks window,automatically displaying a current view of the respective virtuallocation referenced by the selected link.
 79. The method of claim 78,wherein at least one of the images presented in the placemarks windowcorresponds to a live visualization depicting realtime interactions ofcommunicants in the corresponding virtual location.
 80. The method ofclaim 79, wherein the virtual locations are defined by one or morevirtual areas each of which is associated with a respective spatialgraphical representation, and the views show respective ones of thecommunicants' avatars in respective ones of the graphicalrepresentations of the one or more virtual areas in their respectivevirtual locations of presence.
 81. The method of claim 66, furthercomprising depicting a home button that is associated with a respectiveone of the virtual locations, and based on user selection of the homebutton navigating the user's presence from a particular one of thevirtual locations in which the user currently is present to therespective virtual location associated with the home button.
 82. Themethod of claim 81, further comprising: automatically establishing anetwork connection between the user and another communicant who ispresent in the particular virtual location; and based on user selectionof the home button, automatically disconnecting the network connectionbetween the user and the other communicant who is present in theparticular virtual location.
 83. The method of claim 66, furthercomprising presenting a leave button in association with a particularone of the zones in which the user currently is present and, based on auser selection of the leave button, terminating the user's presence inthe particular zone.
 84. At least one computer-readable medium havingembodied therein computer-readable program code that, when executed by acomputer system, causes the computer system to perform operations in anetwork communication environment in which a user and one or more othercommunicants operating respective network nodes establish respectivepresences in virtual locations in which the communicants are representedby respective avatars, the operations comprising: administering realtimecommunications between the network nodes of communicants who are presentin respective ones of the virtual locations; recording a historycomprising a temporally ordered list of presences states of the user inrespective ones of the virtual locations; presenting navigation controlsfor navigating the user's presence from a current one of the virtuallocations in which the user is present to a selected one of the virtuallocations in the history.
 85. Apparatus, comprising a computer-readablemedium storing computer-readable instructions, and a data processingunit coupled to the computer-readable medium, operable to execute theinstructions, and based at least in part on the execution of theinstructions operable to perform operations in a network communicationenvironment in which a user and one or more other communicants operatingrespective network nodes establish respective presences in virtuallocations in which the communicants are represented by respectiveavatars, the operations comprising: administering realtimecommunications between the network nodes of communicants who are presentin respective ones of the virtual locations; recording a historycomprising a temporally ordered list of presences states of the user inrespective ones of the virtual locations; and presenting navigationcontrols for navigating the user's presence from a current one of thevirtual locations in which the user is present to a selected one of thevirtual locations in the history.
 86. A method, in a networkcommunication environment in which a user and one or more othercommunicants operating respective network nodes establish respectivepresences in virtual locations in which the communicants are representedby respective avatars, the method comprising: administering realtimecommunications between the network nodes of communicants who are presentin respective ones of the virtual locations; depicting a home buttonthat is associated with a respective one of the virtual locations; andbased on user selection of the home button navigating the user'spresence from a particular one of the virtual locations in which theuser currently is present to the respective virtual locations associatedwith the home button.